﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;

using Data;

namespace Business
{

    public class Artista
    {
        private int idArtista;
        private String nomeArtista;
        private String descricao;
        private String linkArtista;
        private int status;
        private DataArtista dataLayer;

        public Artista()
        {
            this.idArtista = -1;
            this.nomeArtista = "";
            this.descricao = "";
            this.linkArtista = "";
            this.status = -1;
            this.dataLayer = new DataArtista();
        }


        public Artista(String nome, String descricao, String link)
        {
            this.idArtista = -1;
            this.nomeArtista = nome;
            this.descricao = descricao;
            this.linkArtista = link;
            this.status = -1;
            this.dataLayer = new DataArtista();
        }

        public Artista(Artista artista)
        {
            this.idArtista = artista.getIDArtista();
            this.nomeArtista = artista.getNomeArtista();
            this.descricao = artista.getDescricaoArtista();
            this.linkArtista = artista.getLinkArtista();
            this.status = artista.getStatusArtista();
        }

        // Get's

        public int getIDArtista() { return this.idArtista; }
        public String getNomeArtista() { return this.nomeArtista; }
        public String getDescricaoArtista() { return this.descricao; }
        public String getLinkArtista() { return this.linkArtista; }
        public int getStatusArtista() { return this.status; }
        public DataArtista getDataArtista() { return this.dataLayer; }

        // Set's

        public void setIDArtista(int idArtista) { this.idArtista = idArtista; }
        public void setNomeArtista(String nomeArtista) { this.nomeArtista = nomeArtista; }
        public void setDescricaoArtista(String descricao) { this.descricao = descricao; }
        public void setLinkArtista(String linkArtista) { this.linkArtista = linkArtista; }
        public void setStatusArtista(int status) { this.status = status; }

        public int insereArtista()
        {
            this.idArtista = this.dataLayer.insereArtista(this);
            this.status = 1;
            return this.idArtista;
        }

        public bool updateArtista()
        {
            bool ok = this.dataLayer.updateArtista(this);
            return ok;
        }

        public Artista getArtistaByID(int id)
        {
            Artista a = dataLayer.getArtistaByID(id);
            return a;
        }

        public Artista getArtista(String nome)
        {
            return dataLayer.getArtista(nome);
        }

        public bool setEstadoArtista(int estado)
        {
            bool ok = dataLayer.setEstadoArtista(this.getIDArtista(), estado);
            return ok;
        }

        public String toString()
        {
            StringBuilder str = new StringBuilder();
            str.AppendLine("ID: " + idArtista);
            str.AppendLine("Nome: " + nomeArtista);
            str.AppendLine("Desc: " + descricao);
            str.AppendLine("Link: " + linkArtista + "\n");
            return str.ToString();
        }

    }

}